package es.ucm.pe.algorithms;

public class IndividuoTipo4 extends Cromosoma {
	
	public IndividuoTipo4(Rango[] r , double tol, int id){
		super(tol,r, id);
		evaluar();
	}
	
	public IndividuoTipo4(boolean[] genes, double[] fenotipo, double aptitud, double puntuacion,
			double puntAcum, int[] longVar, Rango[] r, int id) {
		super(genes,fenotipo,aptitud,puntuacion,puntAcum,longVar, r, id);
	}
	
	public void evaluar(){
		calcularFenotipo();
		aptitud = 0;
		double x;
		for(int i = 0; i < fenotipo.length; i++){
			x = fenotipo[i];
			aptitud += -x*Math.sin(Math.sqrt(Math.abs(x)));  
		}
	}
	
	public Cromosoma clone(){
		Cromosoma c = new IndividuoTipo4(this.genes.clone(),this.fenotipo.clone(),
				this.aptitud, this.puntuacion,this.puntAcum,this.longVar.clone(), this.rango.clone(), this.id);
		return c;
	}
}
